1. Field of the Invention
The present invention relates generally to IEEE-1394 serial bus systems and more specifically to a serial bus communication on which multicast packets are transmitted over an assigned channel.
2. Description of the Related Art
IEEE Standard for a High Performance Serial Bus (IEEE Std. 1394-1995) specifies broadcast communication using a particular address reserved for this purpose as well as unicast communication by specifying a target node with an identifier assigned to that node. Asynchronous and isochronous data transfer types are available for different types of traffic. Control data traffic is supported by asynchronous packets, while high-volume traffic is carried on isochronous packets at a constant rate.
Study is currently undertaken by a body known as IETF (Internet Engineering Task Force) to enable transmission of connectionless packets such as IP (Internet Protocol) datagrams over the IEEE-1394 serial bus. According to the proposed method for sending a datagram to a destination node having an IP address, the source node first broadcasts the IP address of the destination node to all nodes of the bus. A node having the broadcast address knows that it is targeted and returns a node identifier corresponding to that IP address to the source node. At the source node, the informed node identifier is registered as a destination address of an asynchronous packet, which is transmitted as an IP datagram. While all nodes of the bus can be addressed with the specified broadcast address and each node can be specified for unicast transmission, it is currently impossible to specify a particular group of nodes for multicast transmission.
Asynchronous stream packets are defined by the IEEE-1394 standard as a special case of asynchronous transmission. Similar to the isochronous packet, the asynchronous stream packet uses a channel number rather than a destination node address. It can be transmitted as a multicast packet during a xe2x80x9cfairness intervalxe2x80x9d. Possibility thus exists that a single channel is shared by more than one node. In such a multicast mode, however, there is a need to provide some means for communicating the channel number of either asynchronous stream packets or isochronous packets between nodes for the purpose of dynamically setting or releasing a channel.
It is therefore an object of the present invention to provide a communication network and a method to implement multicast communication for IEEE-1394 nodes.
According to one aspect, the present invention provides a network comprising a plurality of IEEE-1394 nodes connected to a serial bus, each of the nodes functioning as a source node or a destination node for signaling an asynchronous channel setup request containing a multicast address and signaling an asynchronous channel release request. A multicast manager is connected to the serial bus. The multicast manager comprises a channel allocation table having a plurality of entries each mapping a channel number to a multicast address. The multicast manager is responsive to the asynchronous channel setup request for making a search through the table, setting a node count value to 1, acquiring ownership of a channel number from an IEEE-1394 isochronous resource manager and mapping the acquired channel number to the multicast address of the request in a corresponding entry of the allocation table if no channel number was mapped to the multicast address during the search or incrementing the node count value by 1 if a channel number is mapped to the multicast address, and then signaling a reply message. The source node is responsive to the reply message from the multicast manager for multicasting asynchronous stream packets to the serial bus. The multicast manager is further responsive to the asynchronous channel release request for decrementing the node count value by 1. When the node count value equals zero, the multicast manager restores the ownership of the channel number to the isochronous resource manager and clears the corresponding entry of the channel allocation table.
According to a second aspect, the present invention provides a communication network comprising a plurality of IEEE-1394 nodes connected to a serial bus, each of the nodes functioning as a source node or a destination node for signaling an isochronous channel setup request containing session data and signaling an isochronous channel release request, and a multicast manager connected to the serial bus. The multicast manager comprises a channel allocation table having a plurality of entries each mapping a channel number to session data. The multicast manager is responsive to the isochronous channel setup request for making a search through the table, setting a node count value to 1, acquiring ownership of a channel number and necessary channel resource from an IEEE-1394 isochronous resource manager and mapping the channel number and the necessary channel resource to the session data of the request in a corresponding entry of the table if no channel number was mapped to the session data during the search or incrementing the node count value by 1 if a channel number is mapped to the session data during the search, and signaling a reply message. The source node is responsive to the reply message for multicasting isochronous packets to the bus. The multicast manager is responsive to the isochronous channel release packet for decrementing the node count value by 1. When the node count value equals zero, the multicast manager restores the ownership of the channel number and the channel resource to the isochronous resource manager and clears the corresponding entry of the table.
According to a further aspect, the present invention provides a communication network comprising a plurality of IEEE-1394 nodes connected to a serial bus, each of the nodes functioning as a source node for signaling a path message indicating session data and functioning as a destination node for receiving the path message and signaling a first isochronous channel setup request containing the session data indicated in the path message, each of the source and destination nodes signaling an isochronous channel release request, and a multicast manager connected to the serial bus. The multicast manager comprises a channel allocation table having a plurality of entries each mapping a channel number to session data. The multicast manager is responsive to the first isochronous channel setup packet for making a search through the table, setting a node count value to 1, acquiring ownership of an isochronous channel number from an IEEE-1394 isochronous resource manager and mapping the acquired channel number to the session data of the packet in a corresponding entry of the table if no channel number was mapped to the session data during the search or incrementing the node count value by 1 if a channel number is mapped to the session data during the search, and signaling a first reply message. The destination node is responsive to the first reply message for signaling a reservation message indicating a desired channel resource, and the source node is responsive to the reservation message for signaling a second isochronous channel setup request containing the channel resource indicated in the reservation message. The multicast manager is responsive to the second isochronous channel setup request for determining necessary channel resource from a resource value in the corresponding entry of the allocation table, acquiring ownership of the necessary channel resource from the isochronous resource manager and updating the resource value with the acquired channel resource and signaling a second reply message. The source node is responsive to the second reply message from the multicast manager for multicasting isochronous packets to the bus. The multicast manager is responsive to the isochronous channel release request for decrementing the node count value by 1. When the node count value equals zero, the multicast manager restores the ownership of the channel number and the channel resource to the isochronous resource manager and clears the corresponding entry of the table.